Challenges exist in contemporary static code analysis approaches. For example, existing static code analysis tools report a large percentage of false positives that adversely impact the role of static code analysis in software quality. Also, existing static code analysis tools require end-users to be aware of a tool's internals (that is, setup process, configurations, and its terminology), adversely impacting consumability.
Additionally, existing static code analysis tools do not offer visualizations of the actual code-patterns that have led the tool to report a defect to the user. This, consequently, leaves a gap in empowering a user to take an intelligent judgment on whether a reported bug presents a scenario that can cause a severe impact on code quality. Further, existing static code analysis tools do not offer supporting user feedback and learning from user actions and feedback so as to be more adaptive to user needs.